home *** CD-ROM | disk | FTP | other *** search
/ Visual Cafe 3 / Visual Cafe 3.ISO / Vcafe / Main.bin / CheckedOutputStream.java < prev    next >
Text File  |  1998-09-22  |  2KB  |  82 lines

  1. /*
  2.  * @(#)CheckedOutputStream.java    1.9 96/11/23
  3.  * 
  4.  * Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  * CopyrightVersion 1.1_beta
  20.  * 
  21.  */
  22.  
  23. package java.util.zip;
  24.  
  25. import java.io.FilterOutputStream;
  26. import java.io.OutputStream;
  27. import java.io.IOException;
  28.  
  29. /**
  30.  * An output stream that also maintains a checksum of the data being
  31.  * written. The checksum can then be used to verify the integrity of
  32.  * the output data.
  33.  *
  34.  * @see        Checksum
  35.  * @version     1.9, 11/23/96
  36.  * @author     David Connelly
  37.  */
  38. public
  39. class CheckedOutputStream extends FilterOutputStream {
  40.     private Checksum cksum;
  41.  
  42.     /**
  43.      * Creates an output stream with the specified Checksum.
  44.      * @param out the output stream
  45.      * @param cksum the checksum
  46.      */
  47.     public CheckedOutputStream(OutputStream out, Checksum cksum) {
  48.     super(out);
  49.     this.cksum = cksum;
  50.     }
  51.  
  52.     /**
  53.      * Writes a byte. Will block until the byte is actually written.
  54.      * @param b the byte to be written
  55.      * @exception IOException if an I/O error has occurred
  56.      */
  57.     public void write(int b) throws IOException {
  58.     out.write(b);
  59.     cksum.update(b);
  60.     }
  61.  
  62.     /**
  63.      * Writes an array of bytes. Will block until the bytes are
  64.      * actually written.
  65.      * @param buf the data to be written
  66.      * @param off the start offset of the data
  67.      * @param len the number of bytes to be written
  68.      * @exception IOException if an I/O error has occurred
  69.      */
  70.     public void write(byte[] b, int off, int len) throws IOException {
  71.     out.write(b, off, len);
  72.     cksum.update(b, off, len);
  73.     }
  74.  
  75.     /**
  76.      * Returns the Checksum for this output stream.
  77.      */
  78.     public Checksum getChecksum() {
  79.     return cksum;
  80.     }
  81. }
  82.